package com.sob.bountyhunter.condiciones;

import com.sob.bountyhunter.atributos.HojaPersonaje;
import com.sob.bountyhunter.entidades.Entidad;
import com.sob.bountyhunter.entidades.actores.Actor;

/**
 * Condicion que fortaleze y regenera vida
 * @author MagusDemon
 *
 */
public class CondicionFortaleza extends Condicion {
	public static final long DEFAULT_DURACION = 5000;	//Duracion por defecto de la duracion
	public static final long DEFAULT_INTERVALO = 1000;	//Tiempo por defecto entre las aplicaciones
	public static final long DEFAULT_FORTALECIMIENTO = 1;	//Tiempo por defecto entre las aplicaciones
	public static final String DEFAULT_NOMBRE = "Fortaleza";	//Nombre
	
	private float fortalecimiento;
	
	public CondicionFortaleza(Actor h) {
		super(DEFAULT_NOMBRE, h, DEFAULT_DURACION, DEFAULT_INTERVALO);
		fortalecimiento=DEFAULT_FORTALECIMIENTO;
	}
	
	public CondicionFortaleza(Actor h, float fortaleza) {
		super(DEFAULT_NOMBRE, h, DEFAULT_DURACION, DEFAULT_INTERVALO);
		fortalecimiento=fortaleza;
	}	
	public CondicionFortaleza(Actor h, float fortaleza, long tiempo) {
		super(DEFAULT_NOMBRE, h,tiempo, DEFAULT_INTERVALO);
		fortalecimiento=fortaleza;
	}
	public CondicionFortaleza(Actor h, float fortaleza, long tiempo, long inter) {
		super(DEFAULT_NOMBRE, h,tiempo, inter);
		fortalecimiento=fortaleza;
	}
	
	public void updateCondicion(){
		super.updateCondicion();
		if(duracion.isTick()){
			//Regenera vida
			float base=afectado.hojaPersonaje.getAtributo(HojaPersonaje.VIDA).getBase();
			afectado.hojaPersonaje.getAtributo(HojaPersonaje.VIDA).setBase(base+1);			
		}
		if(!duracion.isFinished()){
			//Aumenta la fuerza
			float baseF=afectado.hojaPersonaje.getAtributo(HojaPersonaje.FUERZA).getMod();
			float modF=baseF+fortalecimiento;
			afectado.hojaPersonaje.getAtributo(HojaPersonaje.FUERZA).setMod(modF);
			
			//Aumenta la vida maxima
			/*
			float baseVM=afectado.hojaPersonaje.getAtributo(HojaPersonaje.VIDA_MAX).getMod();
			float modVM=baseVM+(fortalecimiento*2);
			afectado.hojaPersonaje.getAtributo(HojaPersonaje.VIDA_MAX).setMod(modVM);
			*/
			
			//Aumenta el vigor
			
			float baseVi=afectado.hojaPersonaje.getAtributo(HojaPersonaje.VIGOR).getMod();
			float modVi=baseVi+fortalecimiento*2;
			afectado.hojaPersonaje.getAtributo(HojaPersonaje.VIGOR).setMod(modVi);
			

		}else{
			delete=true;
		}
	}
	
	public float getFortaleza(){
		return fortalecimiento;
	}
	
	@Override
	protected void setPotencia(){
		potencia=(int)(duracion.getDuration()*fortalecimiento);
	}
}
